Những hàm CRC thường dùng và được tiêu chuẩn hóa Cyclic_Redundancy_Check

Các dạng mã kiểm soát lỗi CRC (cyclic redundancy check) được chia thành nhiều tiêu chuẩn, chúng không được tiêu chuẩn hóa thống nhất cho 1 thuật toán nào ở mỗi mức độ trên toàn cầu: có 3 đa thức CRC-12[2], ít nhất 8 biến thể có trong tài liệu của CRC-16, và 3 biến thể của CRC-32[3] được biết đến. Các đa thức thường được xem như không phải là tối ưu có thể. Trong những năm từ 1993 đến 2004, Koopman, Castagnoli và một số nhà khoa học đã tiến hành tìm kiếm trong không gian các đa thức lên đến 16,[4] và không gian 24 và 32 bit,[5][6] tìm các ví dụ có hiệu suất tốt hơn nữa (trong các điều kiện quãng cách Hamming cho một bức tin có kích thước cho trước) so với các đã thức trong các giao thức trước đó, và xuất bản những kết quả tốt nhất trong số chúng với mục đích cải thiện năng lực tìm lỗi cho cac tiêu chuẩn trong tương lai.[6]

Không phải ngẫu nhiên mà đa thức phổ biển CRC-32, được IEEE giới thiệu và được dùng trong V.42, Ethernet, FDDIZIP và các file PNG cũng như nhiều ứng dụng khác, là một đa thức sinh ra từ mã Hamming và được chọn để tìm lỗi[7] trong các kênh truyền thông. Dù vậy, nó còn có hiệu suất tốt hơn với đa thức Castagnoli CRC-32C sử dụng ở iSCSI[6] trong các môi trường Internet SCSI.

Bảng dưới đây chỉ liệt kê những đa thức của những thuật toán đa dạng đang được sử dụng.

TênĐa thứcCác biểu diễn: thông thường hoặc nghịch đảo (đảo của đảo)
CRC-1 x + 1 {\displaystyle x+1} (hầu hết phần cứng; còn biết với tên parity bit)0x1 hoặc 0x1 (0x1)
CRC-4-ITU x 4 + x + 1 {\displaystyle x^{4}+x+1} (ITU G.704, p. 12)0x3 hoặc 0xC (0x9)
CRC-5-ITU x 5 + x 4 + x 2 + 1 {\displaystyle x^{5}+x^{4}+x^{2}+1} (ITU G.704, p. 9)0x15 hoặc 0x15 (0x1A)
CRC-5-USB x 5 + x 2 + 1 {\displaystyle x^{5}+x^{2}+1} (USB token packets)0x05 hoặc 0x14 (0x12)
CRC-6-ITU x 6 + x + 1 {\displaystyle x^{6}+x+1} (ITU G.704, p. 3)0x03 hoặc 0x30 (0x21)
CRC-7 x 7 + x 3 + 1 {\displaystyle x^{7}+x^{3}+1} (Các hệ thống viễn thông, MMC,SD)0x09 hoặc 0x48 (0x44)
CRC-8-ATM x 8 + x 2 + x + 1 {\displaystyle x^{8}+x^{2}+x+1} (ATM HEC)0x07 hoặc 0xE0 (0x83)
CRC-8-CCITT x 8 + x 7 + x 3 + x 2 + 1 {\displaystyle x^{8}+x^{7}+x^{3}+x^{2}+1} (1-Wire bus)0x8D hoặc 0xB1 (0xC6)
CRC-8-Dallas/Maxim x 8 + x 5 + x 4 + 1 {\displaystyle x^{8}+x^{5}+x^{4}+1} (1-Wire bus)0x31 hoặc 0x8C (0x98)
CRC-8 x 8 + x 7 + x 6 + x 4 + x 2 + 1 {\displaystyle x^{8}+x^{7}+x^{6}+x^{4}+x^{2}+1} 0xD5 hoặc 0xAB (0xEA [4])
CRC-8-SAE J1850 x 8 + x 4 + x 3 + x 2 + 1 {\displaystyle x^{8}+x^{4}+x^{3}+x^{2}+1} 0x1D hoặc 0xB8 (0x8E)
CRC-10 x 10 + x 9 + x 5 + x 4 + x + 1 {\displaystyle x^{10}+x^{9}+x^{5}+x^{4}+x+1} 0x233 hoặc 0x331 (0x319)
CRC-11 x 11 + x 9 + x 8 + x 7 + x 2 + 1 {\displaystyle x^{11}+x^{9}+x^{8}+x^{7}+x^{2}+1} (FlexRay)0x385 hoặc 0x50E (0x5C2)
CRC-12 x 12 + x 11 + x 3 + x 2 + x + 1 {\displaystyle x^{12}+x^{11}+x^{3}+x^{2}+x+1} (Các hệ thống viễn thông,[8][9]) 0x80F or 0xF01 (0xC07)
CRC-15-CAN x 15 + x 14 + x 10 + x 8 + x 7 + x 4 + x 3 + 1 {\displaystyle x^{15}+x^{14}+x^{10}+x^{8}+x^{7}+x^{4}+x^{3}+1} 0x4599 hoặc 0x4CD1 (0x62CC)
CRC-16-FletcherKhông phải một CRC; xem Fletcher's checksumSử dụng trong Adler-32 A & B CRC
CRC-16-CCITT x 16 + x 12 + x 5 + 1 {\displaystyle x^{16}+x^{12}+x^{5}+1} (X.25, V.41, CDMA, Bluetooth, XMODEM, HDLC,PPP, IrDA, BACnet; được gọi là CRC-CCITT, MMC,SD)0x1021 hoặc 0x8408 (0x8810 [4])
CRC-16-DNP x 16 + x 13 + x 12 + x 11 + x 10 + x 8 + x 6 + x 5 + x 2 + 1 {\displaystyle x^{16}+x^{13}+x^{12}+x^{11}+x^{10}+x^{8}+x^{6}+x^{5}+x^{2}+1} (DNP, IEC 870, M-Bus)0x3D65 hoặc 0xA6BC (0x9EB2)
CRC-16-IBM x 16 + x 15 + x 2 + 1 {\displaystyle x^{16}+x^{15}+x^{2}+1} (SDLC, USB, khác; còn được biết là CRC-16)0x8005 hoặc 0xA001 (0xC002)
CRC-24-Radix-64 x 24 + x 23 + x 18 + x 17 + x 14 + x 11 + x 10 + x 7 + x 6 + x 5 + x 4 + x 3 + x + 1 {\displaystyle x^{24}+x^{23}+x^{18}+x^{17}+x^{14}+x^{11}+x^{10}+x^{7}+x^{6}+x^{5}+x^{4}+x^{3}+x+1} (FlexRay)0x864CFB hoặc 0xDF3261 (0xC3267D)
CRC-30 x 30 + x 29 + x 21 + x 20 + x 15 + x 13 + x 12 + x 11 + x 8 + x 7 + x 6 + x 2 + x + 1 {\displaystyle x^{30}+x^{29}+x^{21}+x^{20}+x^{15}+x^{13}+x^{12}+x^{11}+x^{8}+x^{7}+x^{6}+x^{2}+x+1} (CDMA)0x2030B9C7 hoặc 0x38E74301 (0x30185CE3)
CRC-32-AdlerKhông phải một CRC; xem Adler-32xem Adler-32
CRC-32-IEEE 802.3 x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x + 1 {\displaystyle x^{32}+x^{26}+x^{23}+x^{22}+x^{16}+x^{12}+x^{11}+x^{10}+x^{8}+x^{7}+x^{5}+x^{4}+x^{2}+x+1} (V.42, MPEG-2, PNG [10])0x04C11DB7 hoặc 0xEDB88320 (0x82608EDB [6])
CRC-32C (Castagnoli) x 32 + x 28 + x 27 + x 26 + x 25 + x 23 + x 22 + x 20 + x 19 + x 18 + x 14 + x 13 + x 11 + x 10 + x 9 + x 8 + x 6 + 1 {\displaystyle x^{32}+x^{28}+x^{27}+x^{26}+x^{25}+x^{23}+x^{22}+x^{20}+x^{19}+x^{18}+x^{14}+x^{13}+x^{11}+x^{10}+x^{9}+x^{8}+x^{6}+1} 0x1EDC6F41 hoặc 0x82F63B78 (0x8F6E37A0 [6])
CRC-32K (Koopman) x 32 + x 30 + x 29 + x 28 + x 26 + x 20 + x 19 + x 17 + x 16 + x 15 + x 11 + x 10 + x 7 + x 6 + x 4 + x 2 + x + 1 {\displaystyle x^{32}+x^{30}+x^{29}+x^{28}+x^{26}+x^{20}+x^{19}+x^{17}+x^{16}+x^{15}+x^{11}+x^{10}+x^{7}+x^{6}+x^{4}+x^{2}+x+1} 0x741B8CD7 hoặc 0xEB31D82E (0xBA0DC66B [6])
CRC-64-ISO x 64 + x 4 + x 3 + x + 1 {\displaystyle x^{64}+x^{4}+x^{3}+x+1} (HDLC — ISO 3309)0x000000000000001B hoặc 0xD800000000000000 (0x800000000000000D)
CRC-64-ECMA-182 x 64 + x 62 + x 57 + x 55 + x 54 + x 53 + x 52 + x 47 + x 46 + x 45 + x 40 + x 39 + x 38 + x 37 + x 35 + x 33 + {\displaystyle x^{64}+x^{62}+x^{57}+x^{55}+x^{54}+x^{53}+x^{52}+x^{47}+x^{46}+x^{45}+x^{40}+x^{39}+x^{38}+x^{37}+x^{35}+x^{33}+} x 32 + x 31 + x 29 + x 27 + x 24 + x 23 + x 22 + x 21 + x 19 + x 17 + x 13 + x 12 + x 10 + x 9 + x 7 + x 4 + x + 1 {\displaystyle x^{32}+x^{31}+x^{29}+x^{27}+x^{24}+x^{23}+x^{22}+x^{21}+x^{19}+x^{17}+x^{13}+x^{12}+x^{10}+x^{9}+x^{7}+x^{4}+x+1} (as described in ECMA-182 p. 63)0x42F0E1EBA9EA3693 hoặc 0xC96C5795D7870F42 (0xA17870F5D4F51B49)

Đã từng tồn tại, nhưng không còn sử dụng trong công nghệ—hầu hết được thay thế bằng các hàm mật mã băm (cryptographic hash functions):

  • CRC-128 (IEEE)
  • CRC-256 (IEEE)

Xung đột mã CRC